package org.zfes.snowier.cloud.zbss.pmp.service;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import org.zfes.snowier.core.data.DataSet;
import org.zfes.snowier.cloud.zbss.pmp.dto.PmpTasksCreateDto;
import org.zfes.snowier.cloud.zbss.pmp.dto.PmpTasksDetailDto;
import org.zfes.snowier.cloud.zbss.pmp.dto.PmpTasksSplitDto;
import org.zfes.snowier.cloud.zbss.pmp.dto.PmpTasksSubmitDto;
import org.zfes.snowier.cloud.zbss.pmp.dto.PmpTasksUpdateDto;
import org.zfes.snowier.cloud.zbss.pmp.model.PmpTasks;
public interface IPmpTasksService{

	 Optional<PmpTasks> loadPmpTasksById(Long id);
	 
	 
	 List<PmpTasks> loadPmpTasksByProjectId(Long projectId);
	 
	 void updatePmpTasks(PmpTasksUpdateDto tasksUpdateDto);

	 DataSet loadPmpTasksDataSet(Map<String, Object> params);
	 
 	void setPmpTasksStatus(Long id, Byte status);
 	
 	void setPmpTasksChargeUser(Long id,Long chargeId);

	Long createPmpTasks(Long creatorUserId, PmpTasksCreateDto tasksCreateDto);

	void addOnesplitPmpTasks(Long splitUserId,Long taskId,PmpTasksSplitDto splitDto);
	
	void submitTasks(Long userId,PmpTasksSubmitDto pmpTasksSubmitDto);

	int updateAssignHours(Long id,Integer assignHours);
	int updateWorkHours(Long id,Integer workHours);
	
	int updateTaskName(Long id, String taskName);
	
	int updateExpiryTime(Long id, Date expiryTime);
	
	
	int updateExpired(Long id, Byte expired);
	
	int updateVersion(Long id,Long versionId);
	
	
	int updateDifficultyScore(Long id,Long difficultyScoreId);

	int checkTask(Long id, Byte isOk, String rejectResaon);
	
}